package com.xbongbong.paas.pojo.dto;

import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * @author youli.chen
 * @version v1.0
 * @description: 保存通话记录入参
 * @date 2019/2/18 19:14
 * @since v1.0
 */
@Setter
@Getter
@ToString
public class CallCallLogSaveDTO extends BaseDTO {

    /**
     * 话务中心平台，参考AppStoreTypeEnum
     */
    @NotNull(message = "{dto.msg.callCallLogList.moduleType.NotNull}")
    private Integer moduleType;
    /**
     * 对象id
     */
    private Long refId;
    /**
     * 对象类型，参考XbbRefTypeEnum
     */
    private Integer refType;
    /**
     * 对象名称
     */
    private String refName;
    /**
     * 响铃开始时间
     */
    @NotNull(message = "{dto.msg.callCallLogSave.startTime.NotNull}")
    private Integer startTime;
    /**
     * 挂断时间
     */
    private Integer endTime;
    /**
     * 接通时间
     */
    private Integer connectTime;
    /**
     * 坐席号码
     */
    private String agentPhoneNum;
    /**
     * 另一方号码
     */
    @NotBlank(message = "{dto.msg.autoCommunicate.anotherPhoneNum.NotNull}")
    private String anotherPhoneNum;
    /**
     * 通话类型，0: 呼入（度言：INBOUND）；1：呼出（度言：OUTBOUND）
     */
    @NotNull(message = "{dto.msg.autoCommunicate.type.NotNull}")
    @Min(value=0, message = "{dto.msg.autoCommunicate.type.Min}")
    @Max(value=1, message = "{dto.msg.autoCommunicate.type.Max}")
    private Integer type;
    /**
     * 通话结果，1: 成功；0：失败（度言字段 outcome 呼叫结果，SUCCESS: 成功；FAIL：失败）
     */
    private Integer result;
    /**
     * 通话记录唯一标识（度言维护）
     */
    private String uuid;
    /**
     * 电话类别
     */
    private String code;
    /**
     * 电话备注
     */
    private String note;

    //销帮帮呼叫中心需要参数
    /**
     * 录音文件地址
     */
    private String recordUrl;
    /**
     * 接通时间（xxb call）
     */
    private Integer answerTime;
    /**
     * 通话时长，秒为单位
     */
    private Integer duration;
    /**
     * sim卡的CCID：唯一标示
     */
    private String ccId;
    /**
     * 通话ID
     */
    private String callId;
}
